home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / util / misc / VMM_src.lha / VMM / lib / string.c < prev   
Encoding:
C/C++ Source or Header  |  1995-01-17  |  2.1 KB  |  144 lines

  1. #include <string.h>
  2.  
  3. char *strcpy(char *dest, const char *src)
  4.  
  5. {
  6. char *tmp1, *tmp2;
  7.  
  8. tmp1 = dest;
  9. tmp2 = (char*)src;
  10.  
  11. while ((*tmp1++ = *tmp2++) != 0);
  12.  
  13. return (dest);
  14. }
  15.  
  16. /***********************************************************************/
  17.  
  18. char *strncpy(char *dest, const char *src, size_t len)
  19.  
  20. {
  21. char *tmp1, *tmp2;
  22. int i;
  23.  
  24. tmp1 = dest;
  25. tmp2 = (char*)src;
  26. i = (int)len;
  27.  
  28. while ((i-- > 0) && ((*tmp1++ = *tmp2++) != 0));
  29.  
  30. return (dest);
  31. }
  32.  
  33. /***********************************************************************/
  34.  
  35. char *strcat(char *dest, const char *src)
  36.  
  37. {
  38. char *tmp1, *tmp2;
  39.  
  40. tmp1 = dest;
  41. tmp2 = (char*)src;
  42. while (*tmp1 != 0)
  43.   tmp1++;
  44.  
  45. while ((*tmp1++ = *tmp2++) != 0);
  46.  
  47. return (dest);
  48. }
  49.  
  50. /***********************************************************************/
  51.  
  52. int strcmp(const char *str1, const char *str2)
  53.  
  54. {
  55. char *tmp1, *tmp2;
  56.  
  57. tmp1 = (char*)str1;
  58. tmp2 = (char*)str2;
  59.  
  60. while ((*tmp1 == *tmp2) && (*tmp1 != 0))
  61.   {
  62.   tmp1++;
  63.   tmp2++;
  64.   }
  65.  
  66. return ((int)(*tmp1 - *tmp2));
  67. }
  68.  
  69. /***********************************************************************/
  70.  
  71. int strncmp(const char *str1, const char *str2, size_t len)
  72.  
  73. {
  74. char *tmp1, *tmp2;
  75. int i;
  76.  
  77. tmp1 = (char*)str1;
  78. tmp2 = (char*)str2;
  79. i = (int)len - 1;
  80.  
  81. while ((*tmp1 == *tmp2) && (*tmp1 != 0) && (i > 0))
  82.   {
  83.   tmp1++;
  84.   tmp2++;
  85.   i--;
  86.   }
  87.  
  88. return ((int)(*tmp1 - *tmp2));
  89. }
  90.  
  91. /***********************************************************************/
  92.  
  93. char *strchr(const char *string, int c)
  94.  
  95. {
  96. char *tmp;
  97.  
  98. tmp = (char*)string;
  99.  
  100. while ((*tmp != c) && (*tmp != 0))
  101.   tmp++;
  102.  
  103. if (*tmp == 0)
  104.   return (NULL);
  105.  
  106. return (tmp);
  107. }
  108.  
  109. /***********************************************************************/
  110.  
  111. size_t strlen(const char *string)
  112.  
  113. {
  114. int len = 0;
  115. char *tmp;
  116.  
  117. tmp = (char*)string;
  118. while (*tmp != 0)
  119.   {
  120.   tmp++;
  121.   len++;
  122.   }
  123.  
  124. return ((size_t)len);
  125. }
  126.  
  127. /***********************************************************************/
  128.  
  129. void CopyMem (void*, void*, unsigned long);
  130.  
  131. #ifdef __GNUC__
  132. void bcopy (const void *from, void *to, size_t size)
  133. #else
  134. void *bcopy (const void *from, void *to, size_t size)
  135. #endif
  136.  
  137. {
  138. CopyMem ((void*)from, to, size);
  139.  
  140. #ifndef __GNUC__
  141. return (to);
  142. #endif
  143. }
  144.